/**
 * \file packet_icmp.h
 * \brief Header Packet ICMP
 * \author Pierre Neumann / Julien Meutelet
 * \version 0.1
 * \date 20 decembre 2013
 *
 * Fichier header de packet_icmp.c
 *
 */
#ifndef packet_icmp_h
#define packet_icmp_h

const size_t ICMP_PACKET_SIZE;  /*!< Taille de l'entête ICMP */
const size_t ICMP_HEADER_SIZE;  /*!< Taille d'un paquet ICMP */
const int ICMP_PROTOCOL_NUMBER; /*!< Numéro du protocole ICMP */

/**
 * \fn init_icmp_header(char** packet, struct in_addr* destination, struct in_addr* source, int ttl)
 * \brief Initialise un paquet ICMP ECHO
 *
 * \param packet Chaine de caractère représentant le paquet ICMP.
 * \param destination Pointeur vers la structure in_addr de la destination.
 * \param source Pointeur vers la structure in_addr de la source.
 * \param ttl Entier utilisé pour initialiser le champ ttl de l'entête IP.
 * \return Rien.
 */
void init_icmp_header(char** packet, struct in_addr* destination, struct in_addr* source, int ttl);

/**
 * \fn print_icmp_header(char** packet)
 * \brief Affiche l'entête ICMP d'un paquet
 *
 * \param packet Chaine de caractère représentant le paquet ICMP.
 * \return Rien.
 */
void print_icmp_header(char** packet);

#endif
